home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / tex / bibtex.doc < prev    next >
Text File  |  1985-06-03  |  8KB  |  168 lines

  1. @
  2. The |built_in| function {\.{+}} pops the top two (integer) literals
  3. and pushes their sum.  If either isn't an integer literal, it
  4. complains and pushes the integer 0.
  5. @
  6. The |built_in| function {\.{-}} pops the top two (integer) literals
  7. and pushes their difference (the first subtracted from the second).
  8. If either isn't an integer literal, it complains and pushes the
  9. integer 0.
  10. @
  11. The |built_in| function {\.{>}} pops the top two (integer) literals,
  12. compares them, and pushes the integer 1 if the second is greater than
  13. the first, 0 otherwise.  If either isn't an integer literal, it
  14. complains and pushes the integer 0.
  15. @
  16. The |built_in| function {\.{<}} pops the top two (integer) literals,
  17. compares them, and pushes the integer 1 if the second is less than the
  18. first, 0 otherwise.  If either isn't an integer literal, it complains
  19. and pushes the integer 0.
  20. @
  21. The |built_in| function {\.{=}} pops the top two (integer or string)
  22. literals, compares them, and pushes the integer 1 if they're equal, 0
  23. otherwise.  If they're not either both string or both integer, it
  24. complains and pushes the integer 0.
  25. @
  26. The |built_in| function {\.{*}} pops the top two (string) literals,
  27. concatenates them (in reverse order, that is, the order in which
  28. pushed), and pushes the resulting string back onto the stack.  If
  29. either isn't a string literal, it complains and pushes the null
  30. string.
  31. @
  32. The |built_in| function {\.{:=}} pops the top two literals and assigns
  33. to the second (which must be an |int_entry_var|, a |str_entry_var|, an
  34. |int_global_var|, or a |str_global_var|) the value of the first;
  35. it complains if the value isn't of the appropriate type.
  36. @
  37. The |built_in| function {\.{add.period\$}} pops the top (string)
  38. literal, adds a |period| to it if the last non-|right_brace| character
  39. isn't a |period|, |question_mark|, or |exclamation_mark|, and pushes
  40. this resulting string back onto the stack.  If the literal isn't a
  41. string, it complains and pushes the null string.
  42. @
  43. The |built_in| function {\.{call.type\$}} executes the function
  44. specified in |type_list| for this entry unless it's |undefined|, in
  45. which case it executes the default function \.{default.type} defined
  46. in the \.{.bst} file, or unless it's |empty|, in which case it does
  47. nothing.
  48. @
  49. The |built_in| function {\.{change.case\$}} pops the top two (string)
  50. literals; it changes the case of the second according to the
  51. specifications of the first, as follows.  (Note: The word `letters' in
  52. the next sentence refers only to those at brace-level~0, the top-most
  53. brace level; no other characters are changed.)  If the first literal
  54. is the string \.{ul}, it converts all letters to lower case except the
  55. very first character in the string, which it converts to upper case;
  56. if it's the string \.{uu}, it converts all letters to upper case; if
  57. it's the string \.{ll}, it converts all letters to lower case; if it's
  58. the string \.{lu}, it converts all letters to upper case except the
  59. very first character in the string, which it converts to lower case;
  60. and if it's anything else, it complains and does no conversion.  It
  61. then pushes this resulting string.  If either type is incorrect, it
  62. complains and pushes the null string; however, if both types are
  63. correct but the specification string (i.e., the first string) isn't
  64. one of the legal ones, it merely pushes the second back onto the
  65. stack, after complaining.  (Another note: It ignores case differences
  66. in the specification string; for example, the strings \.{uL} and
  67. \.{ul} are equivalent for the purposes of this |built_in| function.)
  68. @
  69. The |built_in| function {\.{chr.to.int\$}} pops the top (string)
  70. literal, makes sure it's a single character, converts it to the
  71. corresponding |ASCII_code| integer, and pushes this integer.  If the
  72. literal isn't an appropriate string, it complains and pushes the
  73. integer~0.
  74. @
  75. The |built_in| function {\.{cite\$}} pushes the appropriate string
  76. from |cite_list| onto the stack.
  77. @
  78. The |built_in| function {\.{duplicate\$}} pops the top literal from
  79. the stack and pushes two copies of it.
  80. @
  81. The |built_in| function {\.{format.name\$}} pops the top three
  82. literals (they are a string, an integer, and a string literal, in that
  83. order).  The last string literal represents a name list (each name
  84. corresponding to a person), the integer literal specifies which name
  85. to pick from this list, and the first string literal specifies how to
  86. format this name, as specified in the TO-BE-ADDED.  Finally, this
  87. function pushes the formatted name.  If any of the types is incorrect,
  88. it complains and pushes the null string.
  89. @
  90. The |built_in| function {\.{if\$}} pops the top three literals (they
  91. are two function literals and an integer literal, in that order); if
  92. the integer is greater than 0, it executes the second literal, else it
  93. executes the first.  If any of the types is incorrect, it complains
  94. but does nothing else.
  95. @
  96. The |built_in| function {\.{int.to.chr\$}} pops the top (integer)
  97. literal, interpreted as the |ASCII_code| of a single character,
  98. converts it to the corresponding single-character string, and pushes
  99. this string.  If the literal isn't an appropriate integer, it
  100. complains and pushes the null string.
  101. @
  102. The |built_in| function {\.{int.to.str\$}} pops the top (integer)
  103. literal, converts it to its (unique) string equivalent, and pushes
  104. this string.  If the literal isn't an integer, it complains and pushes
  105. the null string.
  106. @
  107. The |built_in| function {\.{missing\$}} pops the top literal and
  108. pushes the integer 1 if it's a missing field, 0 otherwise.  If the
  109. literal isn't a missing field or a string, it complains and pushes 0.
  110. @
  111. The |built_in| function {\.{newline\$}} writes whatever has
  112. accumulated in the output buffer |out_buf| onto the \.{.bbl} file.
  113. @
  114. The |built_in| function {\.{num.names\$}} pops the top (string)
  115. literal; it pushes the number of names the string represents---one
  116. plus the number of occurrences of the substring "and" surrounded by
  117. nonnull |white_space| (ignoring case differences) at the top brace
  118. level.  If the literal isn't a string, it complains and pushes the
  119. value 0.
  120. @
  121. The |built_in| function {\.{purify\$}} pops the top (string) literal,
  122. converts upper-case letters to lower case, removes nonalphanumeric
  123. characters except for |white_space| characters (one or more
  124. consecutive ones get compressed to a single |space|), and pushes the
  125. resulting string.  If the literal isn't a string, it complains and
  126. pushes the null string.
  127. @
  128. The |built_in| function {\.{quote\$}} pushes the string consisting of
  129. the |double_quote| character.
  130. @
  131. The |built_in| function {\.{skip\$}} is a no-op.
  132. @
  133. The |built_in| function {\.{stack\$}} pops and prints the whole stack.
  134. @
  135. The |built_in| function {\.{substring\$}} pops the top three literals
  136. (they are the two integers literals |pop_lit1| and |pop_lit2| and a
  137. string literal, in that order).  It pushes the substring of the (at
  138. most) |pop_lit1| consecutive characters starting at the |pop_lit2|th
  139. character (assuming 1-based indexing) if |pop_lit2| is positive, and
  140. ending at the |-pop_lit2|th character from the end if |pop_lit2| is
  141. negative (where the first character from the end is the last
  142. character).  If any of the types is incorrect, it complains and pushes
  143. the null string.
  144. @
  145. The |built_in| function {\.{swap\$}} pops the top two literals from
  146. the stack and pushes them back swapped.
  147. @
  148. The |built_in| function {\.{top\$}} pops and prints the top of the
  149. stack.
  150. @
  151. The |built_in| function {\.{type\$}} pushes the appropriate string
  152. from |type_list| onto the stack (unless either it's |empty| or
  153. |undefined|, in which case it pushes the null string).
  154. @
  155. The |built_in| function {\.{while\$}} pops the top two (function)
  156. literals, and keeps executing the second as long as the (integer)
  157. value left on the stack by executing the first is greater than 0.  If
  158. either type is incorrect, it complains but does nothing else.
  159. @
  160. The |built_in| function {\.{width\$}} pops the top (string) literal
  161. and pushes the integer that represents its width in units specified by
  162. the |char_width| array.  If the literal isn't a string, it complains
  163. and pushes 0.
  164. @
  165. The |built_in| function {\.{write\$}} pops the top (string) literal
  166. and writes it on the \.{.bbl} file.  If the literal isn't a string, it
  167. complains but does nothing else.
  168.